# 从abc模块中导入了ABC和abstractmethod
# ABC（Abstract Base Class）是Python中的一个基类，用于定义抽象基类。抽象基类是不能被实例化的类，只能被继承
from abc import ABC, abstractmethod

class Animal(ABC):
    # abstractmethod是一个装饰器，用于标记一个方法为抽象方法
    @abstractmethod
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

dog = Dog()
print(dog.speak())  # 输出： Woof!

cat = Cat()
print(cat.speak())  # 输出： Meow!
